Docker 挂载卷 |
您所在的位置:网站首页 › windows 挂载目录 › Docker 挂载卷 |
原文:Docker Mount Volume – How To Mount a Local Directory,作者:Sebastian Sigl 容器使软件工程更容易、更高效,Docker容器很受欢迎,也很容易使用。 容器对于本地开发来说是必不可少的。它们让你在本地环境中测试你的应用程序,并开始建立所需的基础设施。 Docker容器本质上是不可变的。这意味着重新启动一个容器会删除你在容器中存储的所有数据。但是Docker提供了卷和绑定挂载,这是两种在Docker容器中持久保存数据的机制。 本教程将教你如何将本地目录绑定到你的Docker容器上,并交替使用Docker管理的卷。了解了这两点,你就能在更多的用例中使用Docker容器,从而提高你的工作效率。 使用 docker run -v 进行本地目录挂载docker run命令首先在指定的镜像上创建一个可写的容器层,然后使用指定的命令启动。(来源 docker.com) 使用参数-v允许你绑定一个本地目录。 -v或--volume允许你挂载本地目录和文件到你的容器。例如,你可以启动一个MySQL数据库并挂载数据目录,将实际数据存储在你挂载的目录中。 # run mysql container in the background $ docker run --name mysql-db -v $(pwd)/datadir:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0.28-debian # show content of data directory $ ls -la datadir total 383848 -rw-r----- 1 sebarthel staff 196608 Mar 26 22:47 #ib_16384_0.dblwr -rw-r----- 1 sebarthel staff 8585216 Mar 26 22:47 #ib_16384_1.dblwr drwxr-x--- 12 sebarthel staff 384 Mar 26 22:47 #innodb_temp drwxr-xr-x@ 27 sebarthel staff 864 Mar 26 22:47 . drwxr-xr-x 3 sebarthel staff 96 Mar 26 22:47 .. -rw-r----- 1 sebarthel staff 56 Mar 26 22:47 auto.cnf -rw-r----- 1 sebarthel staff 913 Mar 26 22:47 binlog.000001 (more directories) # stop mysql container docker rm -f mysql-db绑定目录是一种双向的同步。你在主机上改变的每个文件都会在容器中改变,而容器中改变的每个文件都会在主机上改变。因此,如果你停止和启动数据库,你可以挂载同一个目录,你的配置和存储的数据将是可用的。 这种方法的优点是使用起来很直接,而且容易访问。你应该使用绑定的本地目录来存放你想在主机上改变或观察的文件,如配置文件和日志文件。 如何使用Docker Volumes来保存变化你可以使用Docker卷,而不是绑定你的本地目录。Docker卷是你的Docker存储目录中的某个地方的一个目录,可以挂载到一个或许多容器上。它们是完全可管理的,不依赖于某些操作系统。 让我们创建一个Docker卷并挂载它来保存MySQL数据: # create volume docker volume create mysql-data # run mysql container in the background $ docker run --name mysql-db -v mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest # stop mysql container docker rm -f mysql-db # remove volume docker volume remove mysql-data在删除Docker卷之前,你可以打开你的Docker GUI,通过点击data标签来检查卷。 你可以看到这些文件,但它们被隔离在一个Docker卷中。建议使用它们来保存那些你不需要从主机系统观察或改变的文件。众所周知,这种方法比本地目录绑定有更好的性能。 总结当你知道如何持久化你的数据,并且在停止容器时不丢失它们时,Docker容器会变得更加强大。 你通过提供Docker运行-v参数将本地目录和卷绑定到一个容器。你需要给出绝对的本地路径或卷的名称,并将其映射到容器内的目录-v :。 我希望你喜欢这篇文章。 如果你喜欢它,觉得有必要给我鼓掌,或者只是想联系我,在Twitter上关注我。 我在eBay Kleinanzeigen工作。顺便说一下,我们正在招聘! 参考资料 如何在Docker容器内挂载一个目录 使用MySql的Docker镜像 Docker-Compose卷或绑定挂载语法 如何暂停和恢复Docker容器 Docker卷与绑定挂载 Docker文档:卷创建的命令 Docker文档:卷的备份和恢复 Docker容器桌面管理端 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |